from object_define import Order
import json

class FileReader():
    def reader_file(self, path: str) -> list[Order]:
        """
        文件读取抽象方法定义
        :param path: 文件地址
        :return: 读取结果
        """
        pass

class TxtFileReader(FileReader):
    def reader_file(self, path: str) -> list[Order]:
        """
        读取txt文件，并解析文件中的内容
        :param path: 文件路径
        :return: 解析结果
        """
        txt_file = open(path, 'r', encoding='UTF-8')
        order_list: list[Order] = []
        for txt_file_content in txt_file:
            txt_file_content = txt_file_content.strip()
            order_content = txt_file_content.split(',')
            order = Order(order_content[0], order_content[1], order_content[2], order_content[3])
            order_list.append(order)

        txt_file.close()

        return order_list

class JsonFileReader(FileReader):
    def reader_file(self, path: str) -> list[Order]:
        json_file = open(path, 'r', encoding='UTF-8')
        order_list: list[Order] = []
        for json_file_content in json_file:
            json_file_content = json.loads(json_file_content)
            order = Order(json_file_content['date'], json_file_content['order_id'], json_file_content['money'], json_file_content['province'])
            order_list.append(order)
        json_file.close()
        return order_list




if __name__ == '__main__':
    # txtFileReader = TxtFileReader()
    # order_list = txtFileReader.reader_file('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第13章资料\\2011年1月销售数据.txt')
    # for order in order_list:
    #     print(order)

    jsonFileReader = JsonFileReader()
    order_list = jsonFileReader.reader_file('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第13章资料\\2011年2月销售数据JSON.txt')
    for order in order_list:
        print(order)